package edu.kufpg.armatus; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; import edu.kufpg.armatus.console.ConsoleActivity; import edu.kufpg.armatus.console.tutorial.TutorialConsoleActivity; import edu.kufpg.armatus.dialog.TerminalNotInstalledDialog; import edu.kufpg.armatus.treelistview.TreeListViewDemo; import edu.kufpg.armatus.util.StickyButton; /** * The {@link Activity} that is opened when the app is first started. This is merely a * crossroads for all of the various demos of features that may one day make it into the * final Armatus app. */ public class MainActivity extends BaseActivity implements OnClickListener { private TextView mButtonsView; private StickyButton mStickyButton; private int mNumTextChanges = 0; @Override protected void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); mButtonsView = (TextView) findViewById(R.id.code_text_view); final Button consoleButton = (Button) findViewById(R.id.console_button); final Button tutorialButton = (Button) findViewById(R.id.tutorial_button); mStickyButton = (StickyButton) findViewById(R.id.lock_button); final Button unstickButton = (Button) findViewById(R.id.unlock_button); final Button treeButton = (Button) findViewById(R.id.tree_button); final Button terminalButton = (Button) findViewById(R.id.terminal_activity_button); consoleButton.setOnClickListener(this); tutorialButton.setOnClickListener(this); mStickyButton.setOnClickListener(this); unstickButton.setOnClickListener(this); treeButton.setOnClickListener(this); terminalButton.setOnClickListener(this); if (savedInstanceState != null) { mNumTextChanges = savedInstanceState.getInt("numTextChanges"); } setCodeText(mNumTextChanges); } @Override protected void onSaveInstanceState(@NonNull final Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("numTextChanges", mNumTextChanges); } @Override public void onClick(@NonNull final View v) { switch (v.getId()) { case R.id.console_button: startActivity(new Intent(this, ConsoleActivity.class)); break; case R.id.tutorial_button: startActivity(new Intent(this, TutorialConsoleActivity.class)); break; case R.id.lock_button: mNumTextChanges++; setCodeText(mNumTextChanges); break; case R.id.unlock_button: mStickyButton.unstick(); setCodeText(mNumTextChanges); break; case R.id.tree_button: startActivity(new Intent(this, TreeListViewDemo.class)); break; case R.id.terminal_activity_button: String packageName = "jackpal.androidterm"; boolean installed = appInstalledOrNot(this, packageName); if (installed) { Intent i = new Intent("jackpal.androidterm.RUN_SCRIPT"); i.addCategory(Intent.CATEGORY_DEFAULT); i.putExtra("jackpal.androidterm.iInitialCommand", "echo 'Hello, Armatus!'"); startActivity(i); } else { TerminalNotInstalledDialog tnid = new TerminalNotInstalledDialog(); tnid.show(getFragmentManager(), "tnid"); } break; } } private void setCodeText(final int numTextChanges) { mButtonsView.setText("Button pushed " + numTextChanges + " times. (Status: " + (mStickyButton.isStuck() ? "locked" : "unlocked") + ".)"); } }